n = 10
# 使用循环实现
# 假设x是前一个数，y是后一个数
x = 0
y = 0
for i in range(n):
    if i == 0:
        y = 1
        print(1)
    else:
        tmp = x + y
        print(tmp)
        x = y
        y = tmp

print("=" * 100)


# 使用递归实现
def fib(n, x, y):
    n -= 1
    # 退出条件
    if n == 0:
        return
    # 特殊处理第一个数
    if y == 0:
        print(1)
        fib(n, 0, 1)
    else:
        # 计算数列的下一个数
        tmp = x + y
        print(tmp)
        x = y
        y = tmp
        # 调用自己计算下一个数
        fib(n, x, y)


fib(10, 0, 0)
